10 REM IBM 80-CPS Printer Character Set Demonstration
20 REM Displays all twelve character fonts
30 REM Dick Dievendorff, 11/21/81
40 ESC$=CHR$(27): SO$=CHR$(14)
50 ON ERROR GOTO 690:'Trap printer error
60 LPRINT CHR$(12):'Form feed
70 FOR I%=0 TO 31
80 A$=A$+CHR$(I%+&H20)
90 B$=B$+CHR$(I%+&H40)
100 D$=D$+CHR$(I%+&HA0)
110 E$=E$+CHR$(I%+&HC0)
120 NEXT I%
130 FOR I%=96 TO 126
140 C$=C$+CHR$(I%)
150 NEXT I%
160 GOSUB 610: GOSUB 630: GOSUB 660
170 LPRINT SO$;"IBM 80-CPS PRINTER";CHR$(20)
180 LPRINT
190 GOSUB 620: GOSUB 640:'Normal print mode
200 LPRINT "Normal mode                     "; : GOSUB 520
210 GOSUB 610
220 LPRINT "Emphasized mode                 "; : GOSUB 520
230 GOSUB 620
240 GOSUB 630
250 LPRINT "Double strike mode              "; : GOSUB 520
260 GOSUB 610
270 LPRINT "Emphasized double strike mode   "; : GOSUB 520
280 GOSUB 620: GOSUB 640
290 GOSUB 650
300 LPRINT "Compressed mode                 "; : GOSUB 520
310 GOSUB 630
320 LPRINT "Compressed double strike mode   "; : GOSUB 520
330 GOSUB 660: GOSUB 640
340 X$=SO$: 'Everything to double width mode now
350 LPRINT SO$;"Double width mode": GOSUB 520
360 GOSUB 610
370 LPRINT SO$;"Double width emphasized mode" : GOSUB 520
380 GOSUB 620
390 GOSUB 630
400 LPRINT SO$;"Double width double strike mode" : GOSUB 520
410 GOSUB 640
420 GOSUB 610: GOSUB 630
430 LPRINT SO$;"Double width emphasized double strike" : GOSUB 520
440 GOSUB 620: GOSUB 640
450 GOSUB 650
460 LPRINT SO$;"Double width compressed mode" : GOSUB 520
470 GOSUB 630
480 LPRINT SO$;"Double width compressed double strike" : GOSUB 520
490 GOSUB 620: GOSUB 640: GOSUB 660
500 LPRINT : LPRINT
510 END
520 IF X$ = SO$ THEN 560
530 LPRINT A$
540 LPRINT B$;C$
550 GOTO 590
560 LPRINT SO$;A$;CHR$(20)
570 LPRINT SO$;B$;CHR$(20)
580 LPRINT SO$;C$;CHR$(20)
590 LPRINT
600 RETURN
610 LPRINT ESC$+"E"; : RETURN : 'Turns ON  EMPHASIZED mode
620 LPRINT ESC$+"F"; : RETURN : 'Turns OFF EMPHASIZED mode
630 LPRINT ESC$+"G"; : RETURN : 'Turns ON  DOUBLE STRIKE mode
640 LPRINT ESC$+"H"; : RETURN : 'Turns OFF DOUBLE STRIKE mode
650 LPRINT CHR$(15); : RETURN : 'Turns ON  COMPRESSED mode
660 LPRINT CHR$(18); : RETURN : 'Turns OFF COMPRESSED mode
670 REM
680 REM Error trap routine for printer failure
690 PRINT "Ready Line Printer"
700 FOR I%=1 TO 1000: NEXT I%: 'Delay for a couple of seconds
710 RESUME
